JavaのプログラムでAMF通信する
Javaのプログラム内でAMF通信するサンプルを作ってみました。 BlazeDSのバージョンは4.0.0を使います。 BlazeDSの以下のjarファイルをビルドパスに通します。
・flex-messaging-common.jar ・flex-messaging-core.jar
昨日作ったサンプルのサービスに接続してみます。 BlazeDSの設定とAMF通信のサンプル
まずはRemote Objectの場合です。 実行するとサーバとAMF通信して戻り値をコンソールに表示しました。 試したサービスの戻り値がString型だったのでキャストしています。
package sample; import flex.messaging.io.amf.client.AMFConnection; public class SampleRemoteObject { private static String URL = "http://localhost:8080/SampleBlazeDS/messagebroker/amf"; public static void main(String[] args) { try { AMFConnection connection = new AMFConnection(); connection.connect(URL); // endpoint String text = (String)connection.call("sample.sayHello"); // destinationとメソッド名 System.out.println(text); }catch(Exception e) { e.printStackTrace(); } } }
次はMessagingの場合です。 昨日作ったPush通信のサンプルを起動してから 以下のプログラムを実行するとサンプルにメッセージが表示されました。
package sample; import flex.messaging.io.amf.client.AMFConnection; import flex.messaging.messages.AsyncMessageExt; import flex.messaging.messages.Message; import flex.messaging.util.UUIDUtils; public class SamplePush { private static String URL = "http://localhost:8080/SampleBlazeDS/messagebroker/amfpolling"; public static void main(String[] args) { try { AMFConnection connection = new AMFConnection(); connection.connect(URL); // endpoint String uuid = UUIDUtils.createUUID(); AsyncMessageExt message = new AsyncMessageExt(); message.setMessageId(uuid); message.setDestination("sample2"); // destination message.setBody("Hello World3!"); // メッセージ message.setHeader(Message.FLEX_CLIENT_ID_HEADER, uuid); connection.call("", message ); }catch(Exception e) { e.printStackTrace(); } } }